ヘッドレスChrome経由でSeleniumをEC2から動かしてみた

ヘッドレスChrome経由でSeleniumをEC2から動かしてみた

ヘッドレスChromeがインストールされたAmazon Linux 2023(AL2023)のEC2インスタンス上で、Seleniumを用いてスクレイピングしてみました。
Clock Icon2024.09.19

はじめに

こんにちは、アノテーションのなかたです。
今回は、ヘッドレスChromeがインストールされたAmazon Linux 2023(AL2023)のEC2インスタンス上で、Seleniumを用いてスクレイピングしてみました。
ヘッドレスChromeをインストールする方法については、以下の記事を参考にしています。
https://dev.classmethod.jp/articles/headless-chrome-on-al2023/

やってみる

1. ヘッドレスChromeをインストール

こちらのコマンドよりインストールを行います。

bash
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
sudo dnf install ./google-chrome-stable_current_x86_64.rpm

こちらは、以下の記事を参考にインストールしました。
https://dev.classmethod.jp/articles/headless-chrome-on-al2023/

2. Seleniumのインストール

venvより仮想環境を作成して、pipからSeleniumをインストールします。

bash
# ディレククトリの作成
mkdir ~/app
cd ~/app

# 仮想環境の作成と起動
python3 -m venv .venv
source .venv/bin/activate

# seleniumのインストール
pip install selenium

3. スクレイピングスクリプトの作成

以下のPythonスクリプトを作成します。

main.py
from selenium import webdriver

# 設定
options = webdriver.ChromeOptions()
options.add_argument("--headless=new")
driver = webdriver.Chrome(options=options)

# Webページのリクエスト
url = "https://dev.classmethod.jp/"
driver.get(url)

# タイトルの取得
title = driver.title
print(f"{title=}")

# 終了
driver.quit()

options.add_argument("--headless=new")により、明示的にヘッドレスブラウザを使用することを宣言しています。

4. スクリプトの実行

python3 main.pyにより実行します。

おわりに

スクレイピングにブラウザを用いる方法はよく詰まるイメージがあったのですが、スムーズに実行できたので良かったです。
ヘッドレスChromeをスクレイピングライブラリで用いるメリットは、JavaScriptが読み込まれるようなWebページでも情報の取得が行えることであるため、次回はそのようなWebページを対象にスクレイピングしてみたいと思います。

参考

https://selenium-python.readthedocs.io/

アノテーション株式会社について

アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.